package cn.hill4j.tool.spring.ext.iop;

import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotationMetadata;

import java.util.Map;
/**
  * ClassName: IopClientsDefiner
  * Description: iopclient bean扩展字段定义处理类
  * @author hillchen
  * Date: 2023/8/12
  * @version: 1.0
  */
public interface IopClientsDefiner {
    /**
     * @author hillchen
     * Description: 定义iopclient bean扩展字段
     * Date: 2023/8/12 23:32
     * @param metadata 配置注解元数据
     * @param registry bean定义信息注册器
     * @param environment 上下文
     * @param definition 原始bean定义信息
     * @param configAttrs 配置参数列表
     * @param clientBuilder iopClient构成器接口类型
     **/
    void definePropertyValue(AnnotationMetadata metadata, BeanDefinitionRegistry registry, Environment environment, BeanDefinitionBuilder definition, Map<String, Object> configAttrs , Class clientBuilder);
}
